<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
</head>
<body>
    <script>
        //  1.箭头函数只有一个参数可以省略小括号,不需要返回值,可以省略大括号.返回是一个对象,需要用 () 包裹
        const  fn1 = () => {
            console.log('我是函数fn1');
        }
        fn1()

        // 2. 箭头函数没有arguments,只能使用剩余参数
         const fn2 = (...args) =>{
            console.log(args);
         }
         fn2(1,2,3,4,45)

         
        // 3.箭头函数没有自己的this,指向箭头函数外部的this
        // 3.1 普通函数,指向函数调用者
        let obj1 = {
            name:'张三',
            age:'18',
            sayHi:function(){
                console.log(this); // obj1对象
            }
        }
        obj1.sayHi()

        // 3.2 箭头函数指向函数外部的this
        let obj2 = {
            name:'李四',
            age:'18',
            sayHi:() => {                                                                                      
                console.log(this); // 使用箭头函数,this指向对象外面的window    
            }
        }
        obj2.sayHi()

    </script>
</body>
</html>